/**
 * created by 江心才子, 2019/8/8
 * Copyright (c) 2019, 270628297@qq.com All Rights Reserved.
 * #                   *********                            #
 * #                  ************                          #
 * #                  *************                         #
 * #                 **  ***********                        #
 * #                ***  ****** *****                       #
 * #                *** *******   ****                      #
 * #               ***  ********** ****                     #
 * #              ****  *********** ****                    #
 * #            *****   ***********  *****                  #
 * #           ******   *** ********   *****                #
 * #           *****   ***   ********   ******              #
 * #          ******   ***  ***********   ******            #
 * #         ******   **** **************  ******           #
 * #        *******  ********************* *******          #
 * #        *******  ******************************         #
 * #       *******  ****** ***************** *******        #
 * #       *******  ****** ****** *********   ******        #
 * #       *******    **  ******   ******     ******        #
 * #       *******        ******    *****     *****         #
 * #        ******        *****     *****     ****          #
 * #         *****        ****      *****     ***           #
 * #          *****       ***        ***      *             #
 * #            **       ****        ****                   #
 */
package com.wyl.mine.message

import android.view.View
import androidx.databinding.ObservableArrayList
import com.lzg.extend.BaseResponse
import com.lzg.extend.JsonConvert
import com.lzg.extend.toDisposables
import com.lzy.okgo.OkGo
import com.lzy.okrx2.adapter.ObservableBody
import com.wyl.base.ACacheHelper
import com.wyl.base.MINE_MESSAGE
import com.wyl.base.MINE_MESSAGE_CHANGE
import com.wyl.base.MINE_MESSAGE_CLEAR
import com.wyl.base.bean.MsgData
import com.wyl.libbase.base.PageViewModel

/**
 * 项目名称：o2o
 * 创建人：江心才子
 * 创建时间：2019-08-08 16:35
 * 内容描述：
 * 修改说明：
 */
class MessageViewModel : PageViewModel<MsgData>() {

    init {
        enableRefresh.set(false)
        enableLoadMore.set(false)
    }

    override fun refresh() {
        OkGo.post<BaseResponse<List<MsgData>>>(MINE_MESSAGE)
            .params("appUserId", ACacheHelper.id)
            .converter(object : JsonConvert<BaseResponse<List<MsgData>>>() {})
            .adapt(ObservableBody<BaseResponse<List<MsgData>>>())
            .doOnSubscribe { loading.value = true }
            .doFinally { loading.value = false }
            .map { it.data }
            .subscribe(
                {
                    if (it.isEmpty()) {
                        empty.set(View.VISIBLE)
                    } else {
                        dataSource.addAll(it)
                    }
                }, {
                    onError(it)
                }
            ).toDisposables(disposables)
    }

    override fun loadMore() {

    }


    fun clearMessage() {
        OkGo.post<BaseResponse<*>>(MINE_MESSAGE_CLEAR)
            .params("appUserId", ACacheHelper.id)
            .converter(object : JsonConvert<BaseResponse<*>>() {})
            .adapt(ObservableBody<BaseResponse<*>>())
            .subscribe(
                {
                    dataSource.clear()
                    empty.set(View.VISIBLE)
                }, {
                    onError(it)
                }
            ).toDisposables(disposables)
    }

    fun changeState(id: String) {
        OkGo.post<BaseResponse<*>>(MINE_MESSAGE_CHANGE)
            .params("appUserId", ACacheHelper.id)
            .params("id", id)
            .converter(object : JsonConvert<BaseResponse<*>>() {})
            .adapt(ObservableBody<BaseResponse<*>>())
            .subscribe(
                {

                }, {
                    onError(it)
                }
            ).toDisposables(disposables)
    }
}